home *** CD-ROM | disk | FTP | other *** search
/ A.C.E. 3 / ACE CD 3.iso / files / utils / real3d32.dms / in.adf / GUI.LZH / GUI / creation.gui next >
Encoding:
Text File  |  1995-03-25  |  5.8 KB  |  222 lines

  1.  
  2. (
  3. ( Inteface for Creation method
  4. (
  5.  
  6. ?& CREATION_GUI NOT ?IF
  7. 1 CONSTANT CREATION_GUI 
  8.  
  9. "ui.rpl" LOAD
  10. "locks.rpl" LOAD
  11.  
  12. ( Variables
  13.  
  14. VARIABLE craWindow
  15. VARIABLE craPartCnt
  16. VARIABLE craMaxPartCnt
  17. VARIABLE craLifeTime
  18. VARIABLE craText
  19. VARIABLE craProcessor
  20. VARIABLE craVelX
  21. VARIABLE craVelY
  22. VARIABLE craVelZ
  23. VARIABLE craSpinX
  24. VARIABLE craSpinY
  25. VARIABLE craSpinZ
  26. VARIABLE craVRnd
  27. VARIABLE craSRnd
  28. VARIABLE craLRnd
  29.  
  30.  
  31. 180 CONSTANT criLeft
  32. 60  CONSTANT criLeft2
  33. 180 CONSTANT criWidth
  34. 330 CONSTANT criWidth2
  35. 12  CONSTANT criHeight
  36.  
  37. : crcbApply
  38.     FVARIABLE fLifeTime
  39.     VARIABLE iInitCnt
  40.     VARIABLE iMaxCnt
  41.     VARIABLE iProcessor
  42.     VARIABLE iRandom
  43.     VVARIABLE vVelocity
  44.     VVARIABLE vSpin
  45.     100 STRING sTmp
  46.     VARIABLE iVRnd
  47.     VARIABLE iSRnd
  48.     VARIABLE iLRnd
  49.  
  50.     iLOCK_EXCL O_LOCK
  51.     O_GETSEL
  52.  
  53.     DUP O_GETROOT = IF
  54.         iLOCK_REMOVE O_LOCK
  55.         "Cannot be applied to Root" ERROR
  56.         EXIT
  57.     ENDIF
  58.  
  59.     DUP IF
  60.  
  61.         ( Read velocity gadgets
  62.         UI_Done sTmp UIST_String craVelX FETCH UI_GETATTRS sTmp ATOF
  63.         UI_Done sTmp UIST_String craVelY FETCH UI_GETATTRS sTmp ATOF
  64.         UI_Done sTmp UIST_String craVelZ FETCH UI_GETATTRS sTmp ATOF 
  65.     vVelocity VSTORE
  66.         UI_Done iVRnd UISL_Level craVRnd FETCH UI_GETATTRS
  67.  
  68.         ( Fetch spin 
  69.         UI_Done sTmp UIST_String craSpinX FETCH UI_GETATTRS sTmp ATOF
  70.         UI_Done sTmp UIST_String craSpinY FETCH UI_GETATTRS sTmp ATOF
  71.         UI_Done sTmp UIST_String craSpinZ FETCH UI_GETATTRS sTmp ATOF
  72.     vSpin VSTORE
  73.         UI_Done iSRnd UISL_Level craSRnd FETCH UI_GETATTRS
  74.  
  75.         ( Life time
  76.         UI_Done sTmp UIST_String  craLifeTime FETCH UI_GETATTRS
  77.     sTmp ATOF fLifeTime FSTORE ( convert string to floating point
  78.         UI_Done iLRnd UISL_Level craLRnd FETCH UI_GETATTRS
  79.  
  80.         ( Read other attributes
  81.         UI_Done iInitCnt   UISL_Level   craPartCnt    FETCH UI_GETATTRS
  82.         UI_Done iMaxCnt    UISL_Level   craMaxPartCnt FETCH UI_GETATTRS
  83.         UI_Done iProcessor UICB_Checked craProcessor  FETCH UI_GETATTRS
  84.  
  85.     ( cut selected objects to clipboard
  86.         M_CUT 
  87.  
  88.     ( create a creation anim. method 
  89.             2 "creation" 0 
  90.         "CEND" 
  91.             "CREATION" "SMTH" 
  92.             iInitCnt FETCH "IICN" 
  93.         iMaxCnt FETCH  "ICNT" 
  94.             iVRnd FETCH 100 F/ "FVRN"
  95.             iSRnd FETCH 100 F/ "FSRN"
  96.             iLRnd FETCH 100 F/ "FLRN"
  97.         C_LEVEL ( leave address on the stack
  98.  
  99.         iProcessor FETCH IF
  100.             2 "professor" 0 "CEND" "PROCESSOR" "SMTH" C_LEVEL DROP
  101.         ENDIF
  102.  
  103.     ( make creation object the current working level
  104.     O_CURRENT DROP
  105.  
  106.     ( paste selected objects inside the creation method
  107.         O_GETCURR 0 M_PASTE
  108.  
  109.     ( loop through all sub objects and attach necessary tags to them
  110.     O_GETCURR O_GETSUB
  111.     BEGIN 
  112.         DUP 
  113.     WHILE
  114.         DUP 
  115.                 "CEND" 
  116.                 fLifeTime FFETCH "FLIF" 
  117.             vVelocity VFETCH "VVEL"
  118.             vSpin     VFETCH "VSPI"
  119.             O_CREATAG DROP
  120.         O_GETNEXT
  121.     REPEAT
  122.     DROP
  123.     ENDIF
  124.     iLOCK_REMOVE O_LOCK
  125.     UI_Done "All done" UITX_Text craText FETCH UI_SETATTRS
  126.     REFRESH
  127. ;
  128.  
  129. : crcbHelp
  130.     "Ok, I See" "Help not ready yet" GET_KEY DROP
  131. ;
  132.  
  133. : crcbCancel
  134.     craWindow FETCH UI_DELETE
  135.     NULL craWindow STORE
  136. ;
  137.  
  138. : crcbWindow 
  139.     PARAM
  140.         VARIABLE iMouseY
  141.         VARIABLE iMouseX
  142.         VARIABLE iEvent
  143.     ENDPARAM
  144.  
  145.     iEvent FETCH UIWM_Close = 
  146.     IF
  147.         craWindow FETCH UI_DELETE
  148.         NULL craWindow STORE
  149.     ENDIF
  150. ;
  151.  
  152. ?ENDIF ( CREATION_GUI
  153.  
  154. ( Create display objects
  155. (
  156.  
  157. craWindow FETCH 
  158. ?IF
  159.     "I See" "Window is already opened" GET_KEY DROP
  160. ?ELSE
  161.  
  162.     UI_Done & crcbWindow 0 0 420 200 "Procedural Creation Tool" UI_WINDOW craWindow STORE
  163.  
  164.     UI_Done "0.5" UIST_String
  165.     craWindow FETCH NULL criLeft 20 criWidth criHeight "Life time (s)" UI_STRING craLifeTime STORE
  166.  
  167.     UI_Done 0 UISL_Min 100 UISL_Max 0 UISL_Level
  168.     craWindow FETCH NULL criLeft 35 criWidth criHeight "Random Factor" UI_SLIDER craLRnd STORE
  169.  
  170.     UI_Done 1 UISL_Min 1000 UISL_Max 20 UISL_Level
  171.     craWindow FETCH NULL criLeft 50 criWidth criHeight "Number of Particles" UI_SLIDER craPartCnt STORE
  172.  
  173.     UI_Done 1 UISL_Min 10000 UISL_Max 500 UISL_Level
  174.     craWindow FETCH NULL criLeft 75 criWidth criHeight "Max Particle Cnt" UI_SLIDER craMaxPartCnt STORE
  175.  
  176.     UI_Done  TRUE UICB_Checked
  177.     craWindow FETCH NULL criLeft 90 50 criHeight "Create Processor" UI_CHECKBOX craProcessor STORE
  178.  
  179.     ( Velocity gadgets
  180.  
  181.     UI_Done "1.0" UIST_String
  182.     craWindow FETCH NULL criLeft 105 70 criHeight "Velocity (m/s)" UI_STRING craVelX STORE
  183.  
  184.     UI_Done "1.0" UIST_String
  185.     craWindow FETCH NULL criLeft 70 + 105 70 criHeight "" UI_STRING craVelY STORE
  186.  
  187.     UI_Done "1.0" UIST_String
  188.     craWindow FETCH NULL criLeft 140 + 105 70 criHeight "" UI_STRING craVelZ STORE
  189.  
  190.     UI_Done 0 UISL_Min 100 UISL_Max 0 UISL_Level
  191.     craWindow FETCH NULL criLeft 120 criWidth criHeight "Random Factor" UI_SLIDER craVRnd STORE
  192.  
  193.     ( Spin
  194.  
  195.     UI_Done "1.0" UIST_String
  196.     craWindow FETCH NULL criLeft 135 70 criHeight "Spin (2*PI*Rad/s)" UI_STRING craSpinX STORE
  197.  
  198.     UI_Done "1.0" UIST_String
  199.     craWindow FETCH NULL criLeft 70 + 135 70 criHeight "" UI_STRING craSpinY STORE
  200.  
  201.     UI_Done "1.0" UIST_String
  202.     craWindow FETCH NULL criLeft 140 + 135 70 criHeight "" UI_STRING craSpinZ STORE
  203.  
  204.     UI_Done 0 UISL_Min 100 UISL_Max 0 UISL_Level
  205.     craWindow FETCH NULL criLeft 150 criWidth criHeight "Random Factor" UI_SLIDER craSRnd STORE
  206.  
  207.  
  208.     UI_Done 
  209.     "Select an object and click Apply" UITX_Text
  210.     TRUE UITX_Border
  211.     craWindow FETCH NULL criLeft2 165 criWidth2 criHeight "Info" UI_TEXT craText STORE
  212.  
  213.     UI_Done craWindow FETCH & crcbApply   20 185 100 criHeight "Apply"  UI_BUTTON DROP
  214.     UI_Done craWindow FETCH & crcbHelp   170 185 100 criHeight "Help"   UI_BUTTON DROP
  215.     UI_Done craWindow FETCH & crcbCancel 290 185 100 criHeight "Cancel" UI_BUTTON DROP
  216.  
  217.     ( realize gadgets
  218.     craWindow FETCH UI_REALIZE
  219.  
  220. ?ENDIF 
  221.